home *** CD-ROM | disk | FTP | other *** search
- /*
- #### # # # #
- # # # # # The FreeWare C library for
- # # ## ### # # # # ### RISC OS machines
- # # # # # # # # # # # ___________________________________
- # # #### ### ## # # # #
- # # # # # # # # # # Please refer to the accompanying
- #### ### #### # # ##### # ### documentation for conditions of use
- ________________________________________________________________________
-
- File: Menu2.Attach.c
- Author: Copyright © 1995 Julian Smith
- Version: 1.00 (22 Jun 1995)
- Purpose: Attaching menus to icons/windows.
- */
-
-
- #include "DeskLib:Event.h"
- #include "DeskLib:Menu2.h"
-
-
-
- static BOOL Menu2__OpenFromClick(
- event_pollblock *event,
- menu2_handle menu,
- int button
- )
- {
- if ( event->data.mouse.button.value != button) return FALSE;
-
- Menu2_Open(
- menu,
- event->data.mouse.pos.x,
- (event->data.mouse.window < 0) ? -1 : event->data.mouse.pos.y
- );
- return TRUE;
- }
-
-
-
- static BOOL Menu2__SelectClickHandler( event_pollblock *event, void *reference)
- {
- return Menu2__OpenFromClick( event, (menu2_handle) reference, button_SELECT);
- }
-
-
- static BOOL Menu2__AdjustClickHandler( event_pollblock *event, void *reference)
- {
- return Menu2__OpenFromClick( event, (menu2_handle) reference, button_ADJUST);
- }
-
-
-
- static BOOL Menu2__MenuClickHandler( event_pollblock *event, void *reference)
- {
- return Menu2__OpenFromClick( event, (menu2_handle) reference, button_MENU);
- }
-
-
-
- static void Menu2__AttachOrReleaseMenu(
- window_handle window,
- icon_handle icon,
- menu2_handle menu,
- int button,
- event_claimorreleasefn fn
- )
- {
- if ( button & button_MENU)
- fn( event_CLICK, window, icon, Menu2__MenuClickHandler, (void *) menu );
-
- if ( button & button_SELECT)
- fn( event_CLICK, window, icon, Menu2__SelectClickHandler, (void *) menu);
-
- if ( button & button_ADJUST)
- fn( event_CLICK, window, icon, Menu2__AdjustClickHandler, (void *) menu);
- }
-
-
-
-
- void Menu2_AttachMenu(
- window_handle window,
- icon_handle icon,
- menu2_handle menu,
- int button
- )
- {
- Menu2__AttachOrReleaseMenu( window, icon, menu, button, Event_Claim);
- }
-
-
-
- void Menu2_DetachMenu(
- window_handle window,
- icon_handle icon,
- menu2_handle menu,
- int button
- )
- {
- Menu2__AttachOrReleaseMenu( window, icon, menu, button, Event_Release);
- }
-